#ifndef SQLOPERATOR_H
#define SQLOPERATOR_H

#include <QThread>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QVector>

#include "RobotMap/RobotItem.h"
#include "CommonData.h"

/*
* @Brief: 数据库操作类
*/
class SqlOperator : public QObject
{
    Q_OBJECT
public:
    /**
    * @brief  数据库操作初始化
    * @param <tableName> <数据库表名>
    * @param <paren> <父类>
    */
    SqlOperator(const QString& tableName, QObject* parent = 0);
    ~SqlOperator();

    /*
    * @Brief: 设置读取的表头
    */
    void setSqlTable(const QString& tableName);
    /*
    * @Brief: 从index读出数据
    */
    RobotBaseData readSqlData(int index = 1);
    /*
    * @Brief: 读出读出的数据
    */
    inline RobotBaseData getData() {return m_data;}
    /*
    * @Brief: 写数据
    */
    bool writeData(const RobotBaseData& data);


private:
    QSqlQuery m_query;  //查询
    QString m_tableName;    //表头
    RobotBaseData m_data;   //对应的数据


signals:
    /*
    * @Brief: 数据读取成功信号
    */
    void dataRefresh(RobotBaseData& data);
};

#endif // SQLOPERATOR_H
